System, method and apparatus for creating and using a virtual layer within a web browsing environment

ABSTRACT

A system and a method for configuring a user-editable layer within a network are disclosed. The system includes a client computing system including a web browser. The web browser further includes a loaded webpage configured to obtain web content from a universal network server through a web address. The system further includes an application object model to collect objects from the client computing system and the universal network server. The system for configuring the user-editable layer within the network further includes a plug-in unit coupled to a layer definition server and an authenticating server for authenticating user credential information. The user-editable layer may include at least one of a virtual layer, an emulating layer, an upgradable layer and the like.

PRIORITY CLAIM

This application claims priority to U.S. Provisional Application No. 61/058,792 filed on Jun. 4, 2008.

BACKGROUND AND FIELD OF THE INVENTION

The present invention generally relates to a technique for enabling interactive capabilities between users of the World Wide Web and content providers of the World Wide Web. More particularly, the present invention relates to a system and a method for configuring a user interface comprised of an editable layer within a network.

Description of Related Art

Typically, users interact with the internet through World Wide Web (WWW) servers and World Wide Web (WWW) pages which offer hypertext capabilities. Hyper Text Markup Language (HTML) is a scripting or programming language which enables the content providers or developers of World Wide Web pages to place hyperlinks within World Wide Web pages which then link to related content or data present in other World Wide Web pages. The content or data present in each web page can be navigated by the end users of World Wide Web using a Graphical User Interface (GUI).

Conventionally, the end users of the World Wide Web are able to read and gather the content or data present in World Wide Web pages placed by the content providers. Furthermore, the end users of the World Wide Web are able to interact with the web page, as well as other end users, based on the type of functionality offered by the content providers of the World Wide Web.

In general, the conventional technologies as described above have not advanced significantly relative to the growth of internet. Moreover, the conventional techniques lack the ability of editing or modifying existing World Wide Web pages virtually by the end. The conventional techniques also lack the ability of retrieving and accumulating data from multiple web pages that the end user is not currently viewing. Further, they do not allow for simultaneously manipulating and reposting the retrieved data on to a layer present over another World Wide Web page. The World Wide Web pages that can be manipulated or interacted by the end users are the pages that have been created by the World Wide Web content providers.

Hence, there is need for an application or a program running on the end users network device that enables the end user to virtually edit the appearance or functionality of an existing World Wide Web page by making the modifications on a virtual layer that is superimposed onto the World Wide Web page.

SUMMARY

A system and a method are disclosed for configuring a user-editable layer within a network. In accordance with exemplary embodiments of the present invention, according to a first aspect of the invention, a system for configuring a user-editable layer within a network includes a client computing system further including a web browser including a loaded web page configured to obtain web content from a universal network server through a web address. The user-editable layer may include at least one of a virtual layer, an emulating layer, an upgradable layer and the like. A Graphical User Interface (GUI) is adaptable to a domain of the web browser for enabling a visual access to the loaded web page and the user-editable layer.

According to the first aspect, the system for configuring a user-editable layer within a network includes a layer definition server including an application object model to collect objects from the client computing system and the universal network server to enable a comparison between the objects of the application object model and the web address and displaying the web content on the user-editable layer responsive to a match generated following the comparison.

According to the first aspect, the system for configuring a user-editable layer within a network includes a layer definition server including an application object model for displaying a visual resolution enabled superimposed form of the web content on the user-editable layer adaptable to the loaded web page. Once generated, the user-editable layer generated using a layer markup language may be included in the layer definition server. The layer markup language includes built-in logical nodes for avoiding a need of writing scripts for enabling objects for executing events.

According to the first aspect, the system for configuring a user-editable layer within a network includes a plug-in unit coupled to the layer definition server and an authentication server for: 1) authenticating user credential information, 2) transferring the web content pertaining to the user-editable layer to the plug-in unit responsive to the authentication and 3) rendering the transferred web content on the client computing system while enabling an edit feature for the user-editable layer. The plug-in unit includes a logical simulator sub-unit further including a license key for enabling a user-editable layer configuration in the client computing system. The plug-in unit includes a client software sub-unit further including a license key for enabling a user-editable layer configuration in the client computing system. The application object model includes a document object model unit for posting to the plug-in unit information, indexes and references pertaining to downloaded object in the client computing system further pertaining to markup languages.

According to the first aspect, the system for configuring a user-editable layer within a network includes the authentication server coupled to the layer definition server for verifying a need for authenticating a user credential information, transferring the web content pertaining to at least one user-editable layer to the plug-in unit from the layer definition server if minimal authentication is needed for the user credential information and rendering the transferred web content to the client computing system through the plug-in unit including a client software module.

According to the first aspect, the system for configuring a user-editable layer within a network includes the authentication server coupled to the layer definition server for verifying a need for authenticating a user credential information, transferring the web content pertaining to at least one user-editable layer to the plug-in unit from the layer definition server if minimal authentication is needed for the user credential information and rendering the transferred web content to the client computing system through the web browser. The layer definition server sends an authentication request to the plug-in unit including the client software sub-unit, wherein an authentication is required for user credentials, wherein a user enters credentials into a message box in the client software sub-unit, wherein the entered credentials are sent to the server for verification, wherein the authentication server sends an authentication verified signal to the client software sub-unit further sending the authentication verified signal to the layer definition server, and wherein the layer definition server sends an authenticated version of the web content to the client software sub-unit for loading onto the client computing system.

According to a second aspect, a method for configuring an editable virtual layer in an internet browsing environment is disclosed. The method includes a user opening a predetermined web browser through a client computing system to reach a universal network server including a World Wide Web domain.

According to the second aspect, the method for configuring an editable virtual layer in an internet browsing environment includes triggering a virtual layer software sub-unit responsive to the user opening the web browser for enabling a visual access permission for the editable virtual layer through the predetermined web browser.

According to the second aspect, the method for configuring an editable virtual layer in an internet browsing environment includes navigating to a uniform resource locator (URL) through the predetermined web browser responsive to triggering the virtual layer software sub-unit. The virtual layer software sub-unit includes a license key for enabling an editable virtual layer configuration in the client computing system.

According to the second aspect, the method for configuring an editable virtual layer in an internet browsing environment includes transferring the URL information to a server unit configured to store a plurality of layer extensions and configured to render the plurality of layer extensions while collecting objects from the client computing system and universal network server through an application object model for enabling a comparison between objects of the application object model and the URL, displaying a plurality of layer extensions on the editable virtual layer in an overlying manner while maintaining visual resolution between a web page loaded through the URL and the plurality of layer extensions, the rendering being responsive to a match generated following the comparison. The server unit includes a content server unit adaptable to the application object model.

According to the second aspect, the method for configuring an editable virtual layer in an internet browsing environment includes aggregating objects corresponding to the plurality of layer extensions and corresponding to the URL using a layer markup language. The step of aggregating the objects is executed through a layer definition server unit adaptable to the layer markup language including a plurality of built-in logical tags for avoiding a need of writing scripts for enabling objects for executing events. The step of aggregating objects includes rendering a menu user interface (UI) at a predetermined location in a page for the predetermined web browser, executing an event in the layer markup language following a user triggered signal through the client computing system and enabling a series of editing modules on to the editable virtual layer responsive to the execution of the event. In absence of a user triggered signal asking the user whether the user has triggered any signal and returning to the page after a predetermined delay in absence of further response.

According to the second aspect, the method for configuring an editable virtual layer in an internet browsing environment further includes loading a pre-rendered layer markup language module, returning the layer markup language to the virtual layer software sub-unit including a plurality of layer extensions present on the URL and having the virtual layer software sub-unit executing initialization routines in the layer markup language.

According to a third aspect, a computer readable medium including a plurality of computer readable instructions is disclosed. The computer readable medium including a plurality of computer readable instructions which when executed by at least one computer causes configuring a client computing system further includes a web browser including a loaded web page for obtaining a web content from a universal network server through a web address.

According to the third aspect, the computer readable medium including a plurality of computer readable instructions which when executed by at least one computer causes: 1) configuring a layer definition server including an application object model for collecting objects from the client computing system and the universal network server to enable a comparison between objects of the application object model and the web address; 2) displaying the web content on the user-editable layer responsive to a match generated following the comparison; 3) displaying a visual resolution enabled superimposed form of the web content on the user-editable layer adaptable to visual environment of the loaded web page, wherein the user-editable layer is generated using a layer markup language included in a layer definition server.

According to the third aspect, the computer readable medium may include a plurality of computer readable instructions which when executed by at least one computer causes: 1) authenticating user credential information, 2) transferring the web content pertaining to the user-editable layer to the plug-in unit responsive to the authentication; and 3) rendering the transferred web content on the client computing system while enabling an edit feature for the user-editable layer.

BRIEF DESCRIPTION OF THE FIGURES

Other objects and advantages of the present invention will become apparent to those skilled in the art upon reading the following detailed description of the preferred embodiments, in conjunction with the accompanying drawings, wherein like reference numerals have been used to designate like elements, and wherein:

FIG. 1 is a diagram depicting a high level view of the basic components used to make a virtual layer and how they interact.

FIG. 2 is a flowchart illustrating a process for displaying the content on the virtual layer over web pages once the client software is already running on the user's computer.

FIG. 3 is a flow chart illustrating a process of aggregating the extension YLML.

FIG. 4 is flowchart illustrating a process of executing events and routines described in the YLML.

FIG. 5 is a flowchart illustrating a process of extension discovery.

FIG. 6 is a flowchart illustrating a process of loading the extensions that have been associated with the current web page.

FIG. 7 is a flowchart illustrating a process of a client rendering the extensions on the virtual layer.

FIG. 8 is a flowchart illustrating a process of security methods adapted that keep users from seeing content that they do not want to, or is not intended for them to see.

FIG. 9 is a flowchart illustrating a process of posting or editing the content with in the virtual layer.

FIG. 10 is a diagram depicting a web page without the addition of anything on the virtual layer and a web page with the addition of content added to the virtual layer.

DETAILED DESCRIPTION

Exemplary embodiments of the present invention are directed to a system and a method for configuring a user-editable layer within a network. The present technique describes a method for enabling interactive capabilities between users of the World Wide Web as well as between content providers and users of World Wide Web.

In accordance with exemplary embodiments of the present invention, according to a first aspect of the invention, a system for configuring a user-editable layer within a network includes a client computing system further including a web browser including a loaded web page configured to obtain web content from a universal network server through a web address. The user-editable layer may include at least one of a virtual layer, an emulating layer, an upgradable layer and the like. A Graphical User Interface (GUI) is adaptable to a domain of the web browser for enabling a visual access to the loaded web page and the user-editable layer.

According to the first aspect, the system for configuring a user-editable layer within a network includes a layer definition server including an application object model to collect objects from the client computing system and the universal network server to enable a comparison between the objects of the application object model and the web address and displaying the web content on the user-editable layer responsive to a match generated following the comparison.

According to the first aspect, the system for configuring a user-editable layer within a network includes a layer definition server including an application object model for displaying a visual resolution enabled superimposed form of the web content on the user-editable layer adaptable to the loaded web page, the user-editable layer generated using a layer markup language included in a layer definition server. The layer markup language includes built-in logical tags for avoiding a need of writing scripts for enabling objects for executing events.

According to the first aspect, the system for configuring a user-editable layer within a network includes a plug-in unit coupled to the layer definition server and an authentication server for authenticating user credential information, transferring the web content pertaining to the user-editable layer to the plug-in unit responsive to the authentication and rendering the transferred web content on the client computing system while enabling an edit feature for the user-editable layer. The plug-in unit includes a logical simulator sub-unit further including a license key for enabling a user-editable layer configuration in the client computing system. The plug-in unit includes a client software sub-unit further including a license key for enabling a user-editable layer configuration in the client computing system. The application object model includes a document object model unit for posting to the plug-in unit information, indexes and references pertaining to downloaded object in the client computing system further pertaining to markup languages.

According to the first aspect, the system for configuring a user-editable layer within a network includes the authentication server coupled to the layer definition server for verifying a need for authenticating a user credential information, transferring the web content pertaining to at least one user-editable layer to the plug-in unit from the layer definition server if minimal authentication is needed for the user credential information and rendering the transferred web content to the client computing system through the plug-in unit including a client software module.

According to the first aspect, the system for configuring a user-editable layer within a network includes the authentication server coupled to the layer definition server for verifying a need for authenticating a user credential information, transferring the web content pertaining to at least one user-editable layer to the plug-in unit from the layer definition server if minimal authentication is needed for the user credential information and rendering the transferred web content to the client computing system through the web browser. The layer definition server sends an authentication request to the plug-in unit including the client software sub-unit, wherein an authentication is required for user credentials, wherein a user enters credentials into a message box in the client software sub-unit, wherein the entered credentials are sent to the server for verification, wherein the authentication server sends an authentication verified signal to the client software sub-unit further sending the authentication verified signal to the layer definition server, and wherein the layer definition server sends an authenticated version of the web content to the client software sub-unit for loading on to the client computing system.

According to a second aspect, a method for configuring an editable virtual layer in an internet browsing environment is disclosed. The method includes a user opening a predetermined web browser through a client computing system to reach a universal network server including a World Wide Web domain.

According to the second aspect, the method for configuring an editable virtual layer in an internet browsing environment includes triggering a virtual layer software sub-unit responsive to the user opening the web browser for enabling a visual access permission for the editable virtual layer through the predetermined web browser.

According to the second aspect, the method for configuring an editable virtual layer in an internet browsing environment includes navigating to a uniform resource locator (URL) through the predetermined web browser responsive to triggering the virtual layer software sub-unit. The virtual layer software sub-unit includes a license key for enabling an editable virtual layer configuration in the client computing system.

According to the second aspect, the method for configuring an editable virtual layer in an internet browsing environment includes transferring the URL information to a server unit configured to store a plurality of layer extensions and configured to render the plurality of layer extensions while collecting objects from the client computing system and universal network server through an application object model for enabling a comparison between objects of the application object model and the URL, displaying a plurality of layer extensions on the editable virtual layer in an overlying manner while maintaining visual resolution between a web page loaded through the URL and the plurality of layer extensions, the rendering being responsive to a match generated following the comparison. The server unit includes a content server unit adaptable to the application object model.

According to the second aspect, the method for configuring an editable virtual layer in an internet browsing environment includes aggregating objects corresponding to the plurality of layer extensions and corresponding to the URL using a layer markup language. The step aggregating objects is executed through a layer definition server unit adaptable to the layer markup language including a plurality of built-in logical nodes for avoiding a need of writing scripts for enabling objects for executing events. The step of aggregating objects includes rendering a menu user interface (UI) at a predetermined location in a page for the predetermined web browser for no layer applications present for the page, executing an event in the layer markup language following a user triggered signal through the client computing system and enabling a series of editing modules on to the editable virtual layer responsive to the execution of the event. In absence of a user triggered signal asking the user whether the user has triggered any signal and returning to the page after a predetermined delay in absence of further response from the user and in presence of a true signal to a page unloading query returning to the page immediately. According to the second aspect, the method for configuring an editable virtual layer in an internet browsing environment further includes loading a pre-rendered layer markup language module, returning the layer markup language to the virtual layer software sub-unit including a plurality of layer extensions present on the URL and the virtual layer software sub-unit executing initialization routines in the layer markup language.

According to a third aspect, a computer readable medium including a plurality of computer readable instructions is disclosed. The computer readable medium includes computer readable instructions which when executed by at least one computer causes configuring a client computing system and web browser to obtain web content from a universal network server through a web address.

According to the third aspect, the computer readable medium including a plurality of computer readable instructions which when executed by at least one computer causes configuring a layer definition server comprising an application object model for collecting objects from the client computing system and the universal network server to enable a comparison between objects of the application object model and the web address and displaying the web content on the user-editable layer responsive to a match generated following the comparison, for displaying a visual resolution enabled superimposed form of the web content on the user-editable layer adaptable to visual environment of the loaded web page, the user-editable layer generated using a layer markup language included in a layer definition server.

According to the third aspect, the computer readable medium including a plurality of computer readable instructions which when executed by at least one computer causes: 1) authenticating user credential information, 2) transferring the web content pertaining to the user-editable layer to the plug-in unit responsive to the authentication and 3) rendering the transferred web content on the client computing system while enabling an edit feature for the user-editable layer.

According to an exemplary embodiment of the present invention, the virtual layer is superimposed onto web sites within the client's web browser and includes functionality that can be added to a user's interactive capabilities with and within the World Wide Web. In accordance with an example of the invention, the system is preferably implemented through a new XML schema called YLML (Yontoo Layer Markup Language). This new language contains executable programming tags, referenceable data tags, renderable UI tags and the like. Unlike HTML, which is a document markup language that is sometimes used as an application markup language simply because it is widely supported and the industry norm, YLML is a true application markup language that is different from HTML in that it has executable nodes and does not follow the same DOM structure that HTML does. YLML is also different from other XML languages in that it does not use code-behind. YLML does not require a separate file with logic source code, nor does it have imbedded logic using external languages. While other dynamic versions of XML require the use of code-behind or require the addition of external languages such as JavaScript and VBScript to be imbedded into script tags, YLML has native executable logic tags that eliminate the requirement for other languages to be imbedded into tags or used for code-behind.

According to an exemplary embodiment of the present invention, a new object model that works in conjunction with YLML is disclosed. This object model is called a YOM (Yontoo Object Model). A DOM can use only the information that exists in the document it is referencing to create a set of objects that are used to access the data within the HTML. The YOM on the other hand, is a single template that has an established structure that enables access to any information, data or content accessible through a computer system, including, but not restricted to the World Wide Web, databases, data stores, a client's computer or other content sources. This implies that unlike a DOM, which only creates objects for tags for content that exists in whole within the HTML document that it references, the YOM's established structure enables it to access specific content that exists on the World Wide Web, a database, a data store or any other location connected to a networked computer system without requiring content beyond the scope of exactly what is needed to be loaded. This enables the YOM to create objects within the model using a JIT (just in time) method, as opposed to creating the entirety of the model when the incoming file is parsed as is the case with the use of a DOM. The advantage of using the YOM over the DOM is that it gives access to a much broader range of content, including the World Wide Web, databases, data stores, a client's computer or other sources of content, according to an example of the present invention. For a DOM to provide this access, it would need to first load the entirety of the content that exists within these sources which is performance prohibitive.

In accordance with an exemplary embodiment of the present invention, the combination of the YLML, the YOM and the layer system makes it possible to provide users with the ability to add content from many different sources to the virtual layer. It will also enable users to use specific functionalities of web pages, applications and services without having to load the entirety of these web pages, applications, services and the like, according to an example of the present invention. In accordance with an exemplary embodiment of the present invention, the users create new web sites with YLML and YOM structure as used in the layer system.

With reference now to FIG. 1, a diagram is provided which depicts a high level view of the basic components used to make a virtual layer and how they interact. The display of the client's computer 114 will show a combination of information coming from the client's Web Browser 110 and the client side software portion of the invention i.e. Client Software 112, according to an example of the present invention. The Web Browser 110 may be Firefox, Internet Explorer, Netscape Navigator and the like browsers that would enable the users to perform internet browsing. The content being displayed on the web browser comes from third-party web servers 102 from all over the world (World Wide Web). According to an exemplary embodiment of the present invention, once a web page is loaded into the client's web browser, the Client Software 112 sends the URL information from the web browser to the Layer Definition Server 106. According to an exemplary embodiment of the present invention, the Layer Definition Server 106 contains the YOM which contains all of the information, indexes and references needed for the content that will be posted to the Client Software 112. Accordingly, the server checks the YOM to see if there is any content that needs to be displayed on the virtual layer of the user's Client Software 112, based on the URL of the user's Web Browser 110. If the Layer Definition Server 106 decides that there is content to be placed on the user's Client Software 112, it then checks to see if authentication is needed. If the content, found by the Layer Definition Server 106 to be shown, does not require authentication then the a file containing the data needed to display or load the content is sent from the Layer Definition Server 106 to the Client Software 112, according to an exemplary embodiment of the present invention. The Client Software 112 will then either render the content itself or have the user's Web Browser 110 render the content. This content will either come from the invention's Content Server 104 or any other computer that is connected through a network or the Internet.

According to an exemplary embodiment of the present invention, if authentication is required to display the content listed in the Layer Definition Server 106 then the Layer Definition Server 106 will send an authentication request back to the Client Software 112. The user will type credentials into a message box in the Client Software 112 and the login information will be sent to the Authentication Server 108 for verification. If the credentials are correct, the Authentication Server 108 sends the authentication back to the Client Software 112 which then sends it back to the Layer Definition Server 106, according to an exemplary embodiment of the present invention. Once the Layer Definition Server 106 receives the authentication, it will send a file containing the data needed to display or load the content for the Client Software 112, according to an exemplary embodiment of the present invention.

In accordance with an exemplary embodiment of the present invention, many different tools and functionalities that work through the technology of the present invention are provided. These different tools will be extensions (Layer Apps) that users can choose to avail themselves the desired functionality. A menu for the separate layer apps as well as other functionalities available for each website will be accessible through a clickable icon in the bottom corner of the browser, according to an example of the present invention. When the icon is clicked, it will bring up the menu for the user to choose the desired tool or functionality. This Menu User Interface (UI) resembles existing menus such as the Start Menu for the Microsoft Windows OS, according to an example of the present invention.

According to an exemplary embodiment of the present invention, the users are enabled to place images, text, widgets, applications and like content onto the virtual layer such that they will appear to be within the web page itself. The content that has been placed on the virtual layer can be viewed by anyone running the software needed to display the virtual layer and its content. This will be possible when the web page that is being overlaid, with additional content from the user, is one that the user has the right and permission to edit, for instance, on a user's personalized social network page, personal home page, personal blog page and the like according to an example of the present invention. Information about the edits placed on the virtual layer are preferably stored on servers that will interact with client computers. When users running the software needed to view the virtual layer's content browse to a web page that has content placed on a designated virtual layer, the software will receive information from the servers where the edits or augmentations are stored and display the edits or augmentations that have been made to that specific web page. According to an example of the present invention, every user running the client software can access the content within the virtual layer simultaneously while viewing a given designated web page.

In accordance with an exemplary embodiment of the present invention, the system may provide restricted access to the content placed on the virtual layer. In this regard, the content placed on to the virtual layer may be viewed only by a predefined user who has placed the content on the virtual layer. This would enable the user to put widgets, applications, text, pictures and the like onto the virtual layer for their own personal use without allowing access to other parties. In this way, the virtual layer could be personalized for each user that might be on the same web site at the same time running the software. An example of this would be a user adding a stock ticker widget to the virtual layer superimposed over The Washington Post homepage on their computer. The stock ticker widget would appear only on the virtual layer of the specific user that placed the content on the virtual layer.

According to an exemplary embodiment of the present invention, users can place the content onto the virtual layer of every web site they view. This would provide the users with the ability to place content on the virtual layer that does not change as they navigate from one web site to another. In accordance with an example of the present invention, users can place a stock ticker widget onto the virtual layer of a web site and the stock ticker widget remains on the virtual layer as the user browses from one web site to another. Further, this functionality would have no effect or impact on any users running the software on any other computer.

Referring now to FIG. 2, there is a flowchart 200 illustrating a process for displaying content on a virtual layer once the client software is already running on the user's computer. According to an exemplary embodiment of the present invention, a user opens a web browser 202 in order to get connected to the World Wide Web. Opening the browser will trigger the client software to run as a Plug-In or Add-On in the web browser 204. Accordingly, the user will navigate to a URL 206 through the web browser. The client software will then send the URL information to the server side software of the invention 208. Now at step 210, the server scans its data (the YOM) to determine whether there are any extensions (Layer Apps) for the web page based on the URL, according to an exemplary embodiment of the present invention. If there are layer apps for the web page currently being viewed, the server aggregates the extension YLML 218 (see a detailed description of this process in FIG. 3). Accordingly, at step 220 the extension YLML is then sent to the client software and is rendered on the user's browser (see a detailed description of this process in FIG. 7). After rendering the extension content, the client software then renders the Menu UI in the bottom corner of the browser 212. The step of rendering the Menu UI is the step that the system would have gone directly to if there had not been any extensions for the current web page, according to an example of the present invention. After the extensions, if any, have been rendered and the Menu UI has been rendered, the client software waits for any changes to the system through user interaction by waiting for the user to trigger an event 214. An example of a user triggered event would be if the user clicked on the Menu UI 214. This would execute an event in the YLML at step 222 (see a detailed description of this process in FIG. 4). After the event has been executed in the YLML, it is sent back to the client to be rendered 220 and the process goes on indefinitely. If the answer is no when the software asks if the user has triggered an event 214, it will then ask if the page is unloading at step 216 i.e. whether the user browsed to a new web page. If the answer is no, then it goes back to asking if the user has triggered an event 214 and continues in the pattern until something else changes. If the answer to the question at 216 (“Is page unloading?”) is yes, then the system goes back up to the point in the process where the URL is loaded i.e. to step 206 and continues the cycle through the same process as before, in accordance with an exemplary embodiment of the present invention.

Referring to FIG. 3 is a flow chart 300 illustrating a process of aggregating the extension YLML. First, at step 302 the server builds the extension list for the URL currently being viewed (see a detailed description of this process in FIG. 5). Next, at step 304 the server loads the pre-rendered YLML (see a detailed description of this process in FIG. 6). The server then returns the YLML to the client software with all of the extensions on the list for the current URL at step 306, in accordance with an exemplary embodiment of the present invention. Finally, at step 308 the client software executes the initialization routines in the YLML (see a detailed description of this process in FIG. 4).

Referring to FIG. 4 is flowchart 400 illustrating a process of executing events and routines described in the YLML. According to an exemplary embodiment of the present invention, at step 402 the YLML to be rendered is received to the client software (“Client”) from the server. Next, at step 404 the Client parses the YLML and then looks to find the first node that is pending execution and sets the instruction pointer to that node. The instruction pointer provides reference to the client as to which functionality is to be executed next. The Client then executes the functionality that is referenced by the instruction pointer at step 404. The Client then checks the YLML to see if there is another node requiring execution at step 408. Accordingly, if there is no another node requiring execution, the event execution process is over until the Client receives new YLML data 412. If there is another node requiring execution, the instruction pointer is advanced to the next node requiring execution at step 410 and then the Client executes the necessary functionality i.e. the client executes the step 406 and continues the process, according to an exemplary embodiment of the present invention.

Referring to FIG. 5, the flowchart 500 illustrates a process of extension discovery. In accordance with an exemplary embodiment of the present invention, at step 502 the server receives the current URL information from the Client. The Server then searches the YOM to find any extensions that are associated with the URL and adds the extensions to a “found list” at step 504. Then the Server looks deeper to find additional extensions to be added. It searches for and adds to the found list, any extensions that are associated with the URL and file path at step 506, according to an example of the present invention. Now at step 508 the server further looks even deeper by searching for and adding to the found list any extensions that are associated with the URL, the file path and the query string. The Server then removes any extensions that have been disabled by the user at step 510 and sends the extension list on to the extension loading process at step 512.

Referring now to FIG. 6, a flowchart 600 is provided which illustrates a process of loading the extensions that have been associated with the current web page. According to an exemplary embodiment of the present invention, first at step 602 the list of extensions is received from the Extension Discovery process. The process continues through step 604 wherein the loop counter used to index the extensions on the list is set to zero. Next at step 606, the process starts to add the extensions indexed by the loop counter by copying the first one on the list from the YOM and putting it into the YLML that will be rendered (see a detailed description of this process in FIG. 8). Now at a step 608 the user data for the first extension on the list is copied from the YOM and put into the YLML that will be rendered (see a detailed description of this process in FIG. 8). Both the extension data and the user data will contain Peg mapping data to tell the Client where the extensions and the content belong on the virtual layer. Once these two pieces have been added to the YLML the loop counter is incremented at step 610. Further at step 612, the process checks to see if the loop counter is greater than or equal to the extension list count, according to an example of the present invention. If the answer is no, then there are more extensions to be loaded and the process goes back to the step 606 and copies the next extension from the YOM to the YLML to be rendered and continues this process until the loop counter is greater than or equal to the extension list count. When there are no new extensions on the list to be loaded, the process retrieves the Peg Data Block from the YOM at step 614. The Peg Data Block is based on the URL and it will provide the locations needed to properly place the content correctly on the virtual layer of the Client. Once the Peg Data Block is loaded onto the YLML, the process is finished and the YLML is sent to the Client to be rendered at step 616, according to an exemplary embodiment of the present invention.

Referring now to FIG. 7, a flowchart 700 is provided which illustrates a process of a client rendering the extensions on the virtual layer. According to an exemplary embodiment of the present invention, first step 702 is the Client receiving the renderable YLML from the server. The Client then finds the first block of data, content and executable nodes in the YLML to be rendered at step 704. The Client then finds the first component within the first block at step 706. Next, at step 708 the Client finds the Peg Data that corresponds with the first component to be rendered. Then the Client renders the component onto the virtual layer at step 710. The Client then goes back to the YLML at step 712 to find the next component in the block to be rendered. If another component is found within the block, the Client finds the corresponding Peg Data for the component at step 708 and renders the new component at step 710. This cycle continues until there are no more components to be rendered within the first block in the YLML, according to an example of the present invention. When a new component cannot be found, the Client looks in the YLML for the next block of data, content and executable nodes to be rendered at step 714. If a new block is found, the Client finds the first component to be rendered at step 706 and continues through the process the same as before until there are no new blocks to be rendered, according to an exemplary embodiment of the present invention. Once the Client cannot find a new block to be rendered, the rendering process is finished at step 716 until the Client receives new YLML with new or additional blocks to be rendered.

According to an exemplary embodiment of the present invention, the users are provided with the ability to add content to a virtual layer having restricted access. In accordance with an exemplary embodiment of the present invention, one way that permission may be granted is the establishment of a relationship between the poster of the content and the viewer of the content within a proprietary social graph. Another way that permission can be granted may be through the establishment of a relationship between the poster of the content and the viewer of the content within a social graph outside the system of the invention, but the system outside of the invention has access to the system of the present invention. An example of this would be two people that have a connection through the social graph of an existing social network site or an email address contacts list. Preferably, this relationship would not be established by default or simply by the existence of a connection within a social graph but would need to be opted into by both the content poster and the content viewer.

In accordance with an exemplary embodiment of the present invention, another way that permission could be granted would be through the use of a shared key or password technique. In this situation, a poster could add or change content within the virtual layer over a web site and then create a shared key or password that would enable any viewer running the software to view content on the virtual layer.

According to an exemplary embodiment of the present invention, another way that permission can be granted is through the establishment of a relationship between the poster of the content and the viewer of the content by embedding the permission needed to view the poster's content into a hyperlink. These hyperlinks could be placed in an email, instant message, onto a web site that the poster has the ability and permission to edit or anywhere else that a hyperlink can be placed.

In accordance with an exemplary embodiment of the present invention, the users may be provided with an ability to save shared keys or passwords that provide access to content on the virtual layer within the system. This technique would prevent the need for a viewer to type in the shared key or password each time they view a page. An example of this would be a viewer being able to see daily updated comments or editorials on the virtual layers over web pages without having to remember and re-enter the shared key or password every day.

According to an exemplary embodiment of the present invention, users may set a password or a shared key to expire between one and thirty days. The user could renew the password or shared key for an additional one to thirty days, for example, at any point before it has expired. The user can renew the password or shared key as many times as desired, in accordance with an exemplary embodiment of the present invention.

According to an exemplary embodiment of the present invention, the users may create a social graph within the system that can be used to tie users together or connect users in different ways. One example of this would be a friends list that existed within the invention's software system. This will allow users to have pre-set lists where the content placed on the virtual layer by specific people can be viewed simply by the association between the poster and the viewer on the social graph.

Referring now to FIG. 8, a flowchart 800 is provided which illustrates a process of security methods adapted that keep users from seeing content that they do not want to or is not intended for them to see. The flow chart 800 also describes the methods designed to keep users from editing or adding content that they do not have permission or rights to write on to the virtual layer. The process begins at step 802 wherein the system receives a user request to read or write a node within the YOM. It is important to remember that the process begins with a specific request. According to an exemplary embodiment of the present invention, the request may be either for a user to read something specific or write (add/edit) something specific. It will not be a request to grant the user full read and write access to the entirety of node in question. After the request has been received, at step 804 the process checks to see if the node that the user is looking for access to has a security requirement. If the answer is no, then the read or write access is granted at step 812 and the security check for that specific node is finished at step 816. If the node for which read/write access is being requested does have a security requirement, the requirement is loaded at step 806. Then the process checks the user's credentials at step 808 to see if the user is the owner of the security requirement. If the user is the security requirement owner, then read or write access to the YOM node is granted at step 812 and the security check for that specific node is finished at step 816, according to an example of the present invention. If the user is not the owner of the security requirement, the process checks at step 812 to see if the user is a member of a group that has rights to read or write the node in question. If the user is a member of a group with the right to read and write then the request to read and write the node is granted at step 812 and the security check for that specific node is finished at step 816. If the user is not a member of a group that provides him authority to read or write the node in question, the process generates an error at step 814 and the security check for that specific node is finished at step 816.

In accordance with an exemplary embodiment of the present invention, the users can collect desired content from one web page and put it onto the virtual layer over another web page. This would enable the users with an ability to create “MashUps”. The ability to use content from other web pages will provide users with many more customization choices.

Further in accordance with an exemplary embodiment of the present invention, the system and the method may allow users to drag the content present on the virtual layer onto the desktop of the client computing system. This would involve a “tear off” function that will place the content being removed from the virtual layer onto a separate application window.

According to an exemplary embodiment of the present invention, the system and the method may enable users to conglomerate the content onto the invention's servers, create and use new applications that pull content from multiple web sites and compile the multi-source data into one application. In this way, users could use a single application to view email and receive instant messages from multiple sources. Further, users could simultaneously be able to view and interact with multiple social network web sites and the like.

In accordance with an exemplary embodiment of the present invention, the users can post the content that is tied to a specific object on the underlying web page on the virtual layer. The content posted onto the virtual layer may appear as though it is actually attached to the underlying web page i.e. when the user scrolls down on the web page, the content on the virtual layer will scroll as well. This placement method will involve “Pegs” that show the location of where different objects within the underlying web page are placed and attaching the content on the virtual layer to the same “pegged” location. Because the “Pegs” will be attached to existing objects within a web page, if a user has placed content on the virtual layer that is associated with an underlying object that can be moved within the web site itself, as in some personal home pages where the placement of objects can be changed by the user, the content on the virtual layer will move with it. Users will also be able to place content on the virtual layer that is placed in relation to the browser window so that it does not scroll when the users scrolls up or down on the underlying web page, in accordance with an exemplary embodiment of the present invention.

Referring now to FIG. 9, a flowchart 900 is provided which illustrates a process of posting or editing the content within the virtual layer. First the user enters the edit mode through one of the tools brought up by the Menu UI at step 902, in accordance with an exemplary embodiment of the present invention. The Client at step 904 checks the user's security information to verify what edits the user has rights to and then enables available edits based on user's rights at step 906. Next at step 908 the user can make the desired edits by adding, removing or moving components on to the virtual layer. The user then selects the “save” option at step 910 and in responsive to the step 910 the Client sends the amended YLML to the Server in order to update the YOM at step 912. Before the YOM is updated, the Server again checks the user's rights to verify that the user still has the authority to save the changes that have been made at step 914, according to an example of the present invention. If the security settings have changed since edit rights were granted and the user is trying to save edits to a node that no longer has right to access, the Client will generate an error message at step 918 and the current editing process ends finally at step 920. If the user's security settings have not changed and they are still authorized to edit the nodes, the YOM is updated with the user's edits at step 916 and the current editing process ends at step 920.

Referring now to FIG. 10, a diagram 1000 is provided which depicts a web page without the addition of anything on the virtual layer 1002 and a web page with the addition of content added to the virtual layer 1012. The pre existing objects 1004 in the web page are depicted in the FIG. 1000. The components 1006 i.e. text, images and the like that make up the content on a web page are pieced together to create the web page as a whole, according to an example of the present invention. Additional content (“objects”) 1010 can be added to the virtual layer over an existing webpage to change the appearance and functionality of the webpage provided the user is running the invention's client software i.e. client software developed in accordance with an exemplary embodiment of the present invention. The object 1010 on the virtual layer of the browser window that is running the client software 1008 illustrates that the appearance of the web page can be edited to contain additional images or content.

According to an exemplary embodiment of the present invention, the system and the methods described above may enable users to log into their account from any computer so that the modifications they have made to the virtual layer over web sites and the tools that they have added to their accounts for use are available from any computer.

In accordance with an exemplary embodiment of the present invention, additional tools and functionalities may be added. The additional tools or functionalities may include, but are not limited to, the following: a switch that can enable users to appear to turn off edits that have been made to MySpace.com pages and the like; tools to quickly and easily add images, widgets, and links to a social networking page and the like; tools for bloggers or editorialists that would enable them to post comments or editorials directly onto a web page, such as an article from another publication that they were discussing, these tools could also be used by teachers or professors that could have students view articles with teacher's notes or highlights added.

According to an exemplary embodiment of the present invention, additional tools may also include a “sniper” tool that places a last second bid on an online auction site that would actually be integrated into the auction site; a video grabber tool that will download and save streaming video from web sites such as YouTube.com; and a hyperlink integrator that would overlay existing text with text that was hyperlinked and tied to a different web site. An example of this tool would be overlaying the title of a book within an article with hyperlinked text that when clicked on would take the user to an online merchant where the book could be purchased. This may involve a search aggregator tool that would be integrated with existing search engines, but will augment the return results by adding the return results of other search engines or queries. An example of this would be a tool that was integrated with Google such that when a search was done, the content returned would be not only the Google search results, but also any information on the terms searched from Wikipedia.org, Dictionary.com and the like.

In accordance with an exemplary embodiment of the present invention, the additional tools and functionalities further may include a communication aggregation tool that will allow users to communicate through whatever means they choose from one application. This application will enable users to use different instant message accounts, different email accounts, different social network accounts, text messaging to telephones and the like. The additional tools may further include a virtual pet that can roam around on the browser window is also provided. The virtual pet will create the appearance of depth on the browser window by its z-order changing so that it walks around in front of some images, objects and text while walking behind others, according to an example of the present invention. The tools may further include:

-   -   a tool that would keep track of a user's credentials and hook         into the API of sites so that the user is automatically logged         into sites they visit without having to log in manually each         time they visit;     -   a virtual gift tool that will enable users to send content such         as images or applications to other users;     -   an alert tool that will alert a user when an update of a web         site has been made or when a new article on a specific topic has         been found based on specific terms or key words that the user         has saved into the tool;     -   a tool that will be integrated into existing web sites that will         enable businesses such as restaurants to have real time updates         of waiting times for tables, or movie theaters to show real time         information about how many seats are currently available for a         specific movie showing;     -   a scheduling tool that a company can have integrated into their         web site that employees can log into to see when they are         scheduled to work;     -   a tool that will show “pop-ups” letting the user know when a new         email has come into an online mail account, this tool will work         like the new mail pop-ups currently work for Microsoft Outlook,         but for online email accounts such as G-Mail, Yahoo Mail,         Hotmail and the like;     -   a tool that will search the contents of a user's computer and         use algorithms to detect what information the user is interested         in and alert the user when there is new information or content         on the World Wide Web that matches topics, people or key words         that the algorithm has deemed important to the user;     -   a tool that integrates web sites such as travel sites with sites         such as Craigslist.org or Yelp.com and the like to give         travelers more information about the area they will be traveling         to;     -   a tool that will enable users to highlight text on a web page         and then click on integrated buttons to bring up search results         from different sites such as Dictionary.com, Wikipedia.org,         Google.com and the like.

In accordance with an exemplary embodiment of the present invention, the additional tools may further includes a tool that will enable users to search for specific words or text within a web page, a tool that will enable users to do “smart searches” where the user could search for quotes from specific people in an article and the like, a tool that will enable users a kind of picture in picture functionality where they can leave one window or application “on top” while they click on or interact with a window or application that is actually behind the top one and a tool that will take an existing web page and put a copy of it onto the virtual layer so that the components of the site can be rearranged and organized the way that the user wants them.

While the present invention has been described in conjunction with preferred embodiments thereof, many modifications and variations will be apparent to those of ordinary skill in the art. While the present invention has been described in particular embodiments, it should be appreciated that the present invention should not be construed as limited by such embodiments, but rather construed according to the following claims. 

1. A method for configuring an editable virtual layer in an internet browsing environment, the method comprising: transferring URL information to a server unit configured to store a plurality of layer extensions; selecting a layer extension based on the transferred URL information; and providing display data to arrange the display of the selected layer extension on a virtual layer superimposed over a selected web-page.
 2. The method of claim 1, wherein the method further comprises: aggregating objects corresponding to the selected layer extension and the URL information using a layer markup language; wherein, the aggregation is executed through a layer definition server unit adaptable to the layer markup language including a plurality of built-in logical nodes.
 3. The method of claim 1, wherein the method further comprises: aggregating objects corresponding to the selected layer extension and URL information using a layer markup language; wherein the layer markup language contains native executable logic tags.
 4. The method of claim 1, wherein the display data includes Peg mapping data.
 5. A system for configuring a user-editable layer for display, the system comprising: a content server comprising an application object model to collect objects from a client computing system and a universal network server; a processing element for comparing objects of the application object model and a web address; a data element for providing display data for a user-editable layer responsive to the comparison of the processing element, wherein the display data may be used to create a superimposed image to be displayed over a selected web page.
 6. The system of claim 5, wherein the user-editable layer is generated using a layer markup language included in a layer definition server.
 7. The system of claim 6 wherein the system further includes: a plug-in unit coupled to the layer definition server and an authentication server, wherein the system is configured to: authenticate user credential information; transfer web content pertaining to the user-editable layer to the plug-in unit responsive to the authentication; and render the transferred web content on the client computing system.
 8. The system of claim 7, wherein the authentication server is coupled to the layer definition, and wherein the system is further configured to: verify a need for authenticating a user; transfer web content pertaining to at least one user-editable layer to the plug-in unit from the layer definition server; and render the transferred web content.
 9. The system of claim 8, wherein authentication is granted based on the establishment of a relationship between the poster of the content and the viewer of the content within a proprietary social graph.
 10. The system of claim 6, wherein the layer markup language comprises built-in logical nodes.
 11. A method for configuring an editable virtual layer in an internet browsing environment having at least one client computer, the method comprising: storing virtual layer data paired with URL information; selecting virtual layer data for display based on selected URL information; and aggregating objects corresponding to the virtual layer data and corresponding to the selected URL information.
 12. The method of claim 11, wherein the step of aggregating objects is executed through a layer definition server unit adaptable to a layer markup language including a plurality of built-in logical nodes.
 13. The method of claim 12, wherein the step of aggregating objects comprises: rendering a menu user interface at a predetermined location relative to a displayed web-page; executing an event in the layer markup language following a user triggered signal through a client computing system.
 14. One or more computer-readable storage media having computer-executable instructions for performing a method, wherein the method comprises configuring a content server comprising an application object model for collecting objects from a client computing system; enabling a comparison between objects of the application object model and a web address; and displaying web content on the user-editable layer responsive to a match generated following the comparison, wherein the display is comprised of a superimposed form of the web content on the user-editable layer adaptable to visual environment of the loaded web page, the user-editable layer generated using a layer markup language included in a layer definition server; authenticating user credential information; transferring the web content pertaining to the user-editable layer to the plug-in unit responsive to the authentication; and rendering the transferred web content on the client computing system. 